using System;

namespace ERP.ERPSystem.ProductionSystem.Dto
{
    /// <summary>
    /// 生产工单甘特图显示DTO
    /// </summary>
    public class ProductionWorkOrderGanttDto
    {
        /// <summary>
        /// 工单ID
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 工单编码
        /// </summary>
        public string WorkOrderCode { get; set; }

        /// <summary>
        /// 工单名称
        /// </summary>
        public string WorkOrderName { get; set; }

        /// <summary>
        /// 产品编号
        /// </summary>
        public string ProductCode { get; set; }

        /// <summary>
        /// 产品名称
        /// </summary>
        public string ProductName { get; set; }

        /// <summary>
        /// 规格型号
        /// </summary>
        public string ProductModel { get; set; }

        /// <summary>
        /// 单位
        /// </summary>
        public string Unit { get; set; }

        /// <summary>
        /// 工单数量
        /// </summary>
        public int WorkOrderQuantity { get; set; }

        /// <summary>
        /// 需求日期
        /// </summary>
        public DateTime DemandDate { get; set; }

        /// <summary>
        /// 计划开始时间
        /// </summary>
        public DateTime? PlannedStartTime { get; set; }

        /// <summary>
        /// 计划结束时间
        /// </summary>
        public DateTime? PlannedEndTime { get; set; }

        /// <summary>
        /// 实际开始时间
        /// </summary>
        public DateTime? ActualStartTime { get; set; }

        /// <summary>
        /// 实际结束时间
        /// </summary>
        public DateTime? ActualEndTime { get; set; }

        /// <summary>
        /// 完成进度百分比
        /// </summary>
        public decimal ProgressPercent { get; set; } = 0;

        /// <summary>
        /// 生产状态
        /// 0-草稿 1-已确认 2-已完成 3-暂停 4-异常
        /// </summary>
        public int ProductionStatus { get; set; } = 0;

        /// <summary>
        /// 生产状态文本
        /// </summary>
        public string ProductionStatusText { get; set; }

        /// <summary>
        /// 客户编码
        /// </summary>
        public string CustomerCode { get; set; }

        /// <summary>
        /// 客户名称
        /// </summary>
        public string CustomerName { get; set; }

        /// <summary>
        /// 已生产数量
        /// </summary>
        public int CompletedQuantity { get; set; } = 0;

        /// <summary>
        /// 工序信息（用于甘特图显示）
        /// </summary>
        public string ProcessInfo { get; set; }

        /// <summary>
        /// 优先级
        /// </summary>
        public int Priority { get; set; } = 1;
    }
} 